The PACAP Prototype: A Tool for Detecting Java Card Illegal Flow
نویسندگان
چکیده
This paper presents some practical issues of a joint project between Gemplus and ONERA. In this approach, a smart card issuer can verify that a new applet securely interacts with already loaded applets. A security policy has been defined that associates levels to applet attributes and methods and defines authorized flows between levels. We propose a technique based on model checking to verify that actual information flows between applets are authorized. In this paper, we focus on the development of the prototype of the analyzer and we will present the first results. 1. Illegal flow in multi-applicative smart cards Security is always a big concern for smart cards but it is all the more important with multiapplication smart cards and post issuance code downloading. Opposed to mono-applicative smart cards where Operating System (OS) and application were mixed, multi-application smart cards have drawn a clear border between the OS, the virtual machine and the applicative code. In this context, it is necessary to distinguish the security of the card (hardware, operating system and virtual machine) from the security of the application. The card issuer is responsible for the card security and the application provider is responsible for the applet security, which relies necessarily on the card security. The physical security is obtained by the smart card media and its tamper resistance. The security properties that the OS guarantees are the quality of the cryptographic mechanisms (which should be leakage resistant, i.e., resistant against side channel attacks such as Differential Power Analysis), the correctness of memory and I/O management. A Java Card virtual machine relies on the type safety of the Java language to guarantee the innocuousness of an applet with respect to the OS, the virtual machine, and other applets. However, this is ensured by an off-card byte-code verifier, and extra mechanisms that have been added. A secure loader checks before loading an applet that it has been signed (and therefore verified) by an authorised entity (namely the card issuer). Figure 1 shows the role of the different participants. The card issuer or a Trusted Third Party (TTP) is responsible in delivering the certificate indicating the correctness of the verified applet. This verification concerns the type correctness and the card issuer security policy correctness [5]. Card Provider Applet Provider End User Card Issuer Service Provider Applet
منابع مشابه
Checking secure information flow in Java bytecode by code transformation and standard bytecode verification
A method is presented for checking secure information flow in Java bytecode, assuming a multilevel security policy that assigns security levels to the objects. The method exploits the type-level abstract interpretation of standard bytecode verification to detect illegal information flows. We define an algorithm transforming the original code into another code in such a way that a typing error d...
متن کاملJCSI: A tool for checking secure information flow in Java Card applications
This paper describes a tool for checking secure information flow in Java Card applications. The tool performs a static analysis of Java Card CAP files and includes a CAP viewer. The analysis is based on the theory of abstract interpretation and on a multi-level security policy assignment. Actual values of variables are abstracted into security levels, and bytecode instructions are executed over...
متن کاملDetecting illegal information flow using abstract interpretation and model checking
This paper describes the status of a joint project between Gemplus and ONERA. It presents an approach enabling a smart card issuer to verify that a new applet securely interacts with already loaded applets. A security policy has been defined that associates levels to applet attributes and methods and defines authorized flows between levels. We propose a technique based on model checking to veri...
متن کاملCombined Software and Hardware Attacks on the Java Card Control Flow
The Java Card uses two components to ensure the security of its model. On the one hand, the byte code verifier (BCV) checks, during an applet installation, if the Java Card security model is ensured. This mechanism may not be present in the card. On the other hand, the firewall dynamically checks if there is no illegal access. This paper describes two attacks to modify the Java Card control flo...
متن کاملElectronic Purse Applet Certification ? ( Extended
The paper describes the status of a joint project between Gemplus and ONERA. Gemplus developed an electronic purse running on Java enabled smart cards. The project goal is to verify security properties that should be enforced by the applets involved in this application. A security policy has been defined that associates levels to applet attributes and methods and defines authorized flows betwee...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2000